<script>
	import Vue from 'vue'
	export default {
		onLaunch: function() {
			this.$store.commit('initApp')
			uni.getSystemInfo({
				success: function(e) {
					// #ifndef MP
					Vue.prototype.StatusBar = e.statusBarHeight
					if (e.platform == 'android') {
						Vue.prototype.CustomBar = e.statusBarHeight + 50
					} else {
						Vue.prototype.CustomBar = e.statusBarHeight + 45
					}
					// #endif
					// #ifdef MP-WEIXIN
					Vue.prototype.StatusBar = e.statusBarHeight
					let custom = wx.getMenuButtonBoundingClientRect()
					Vue.prototype.Custom = custom
					Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight
					// #endif
					// #ifdef MP-ALIPAY
					Vue.prototype.StatusBar = e.statusBarHeight
					Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight
					// #endif
					let unitRatio = 750 / uni.getSystemInfoSync().windowWidth
					Vue.prototype.StatusBarRpx = Vue.prototype.StatusBar * unitRatio
					Vue.prototype.CustomBarRpx = Vue.prototype.CustomBar * unitRatio
					Vue.prototype.unitRatio = unitRatio
					Vue.mixin({
						data() {
							return {
								StatusBar: Vue.prototype.StatusBar, //状态栏高度(px)
								CustomBar: Vue.prototype.CustomBar, //整个标题栏高度(px)
								StatusBarRpx: Vue.prototype.StatusBarRpx, //状态栏高度(rpx)
								CustomBarRpx: Vue.prototype.CustomBarRpx, //整个标题栏高度(rpx)
							}
						},
					})
				},
			})
			// #ifdef APP-PLUS
			// 锁定屏幕显示方向为竖屏正方向
			plus.screen.lockOrientation('portrait-primary')
			// 推送服务
			plus.push.addEventListener('click', (message) => {
				this.pushCallback(message)
			})
			// #endif
			global.token && this.$store.dispatch('getCartList')
			
			// if (global.token) {
			// 	uni.switchTab({
			// 		url: '/pages/tabBar/index/index'
			// 	})
			// } else {
			// 	uni.reLaunch({
			// 		url: '/pages/tabBar/login/login'
			// 	})
			// }
		},
		onShow: function() {
			console.log('APP Show')
			// #ifdef APP-PLUS
			// 获取参数
			const args = plus.runtime.arguments
			if (args) {
				plus.runtime.arguments = null
				plus.runtime.arguments = ''
				let params_str = args.split('?')[1]
				if (params_str) {
					let params = params_str.split('&').reduce(function(total, item) {
						let arr = item.split('=')
						total[arr[0]] = arr[1]
						return total
					}, {})
					console.log('params', params)
					// params 参数: path 跳转路径 options 参数
					uni.navigateTo({
						url: `${params.path}?goods_id=${params.goods_id}&activity_id=${params.activity_id}&sku_id=${params.sku_id}&bargain_id=${params.bargain_id}`,
					})
				}
			}
			// #endif
			
			
			// #ifdef MP-WEIXIN
			this.checkForUpdate()
			// #endif
		},
		onHide: function() {
			// 用户退出app时，把二次验证状态改为true
			console.log('APP Hide')
		},
		methods: {
			// 检测是否更新
			checkForUpdate() {
				const _this = this
				// 检查小程序是否有新版本发布
				const updateManager = uni.getUpdateManager();
				// 请求完新版本信息的回调
				updateManager.onCheckForUpdate((res) => {
					console.log('onCheckForUpdate-res', res);
					//检测到新版本，需要更新，给出提示
					if (res && res.hasUpdate) {
						uni.showModal({
							title: '更新提示',
							content: '检测到新版本，是否下载新版本并重启小程序？',
							success(res) {
								if (res.confirm) {
									//用户确定下载更新小程序，小程序下载及更新静默进行
									_this.downLoadAndUpdate(updateManager)
								} else {
									// 若用户点击了取消按钮，二次弹窗，强制更新，如果用户选择取消后不需要进行任何操作，则以下内容可忽略
									uni.showModal({
										title: '温馨提示~',
										content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦~',
										confirmText: "确定更新",
										cancelText: "取消更新",
										success(res) {
											if (res.confirm) {
												//下载新版本，并重新应用
												_this.downLoadAndUpdate(updateManager)
											}
										}
									});
								}
							}
						});
					}
				});
			},
			// 下载小程序新版本并重启应用
			downLoadAndUpdate(updateManager) {
				const _this = this
				uni.showLoading({
					title: '小程序更新中'
				});
			
				// //静默下载更新小程序新版本
				updateManager.onUpdateReady((res) => {
					console.log('onUpdateReady-res', res);
					uni.hideLoading();
					//新的版本已经下载好，调用 applyUpdate 应用新版本并重启
					updateManager.applyUpdate()
				});
			
				// 更新失败
				updateManager.onUpdateFailed((res) => {
					console.log('onUpdateFailed-res', res);
					// 新的版本下载失败
					uni.hideLoading();
					uni.showModal({
						title: '已经有新版本了哟~',
						content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
						showCancel: false
					});
				});
			},
			// 推送回调
			pushCallback(message) {
				this.$urouter.navigateTo('/pages/service-message/message/message-type/index')
			},
			// #ifdef APP-PLUS
			// 权限检查
			checkPermissions() {
				// #ifdef APP-PLUS
				if (plus.os.name == 'Android') {
					// 判断是Android
					var main = plus.android.runtimeMainActivity()
					var pkName = main.getPackageName()
					var uid = main.getApplicationInfo().plusGetAttribute('uid')
					var NotificationManagerCompat = plus.android.importClass(
						'android.support.v4.app.NotificationManagerCompat')
					var areNotificationsEnabled = NotificationManagerCompat.from(main).areNotificationsEnabled()
					// 未开通‘允许通知’权限，则弹窗提醒开通，并点击确认后，跳转到系统设置页面进行设置
					if (!areNotificationsEnabled) {
						uni.showModal({
							title: this.i18n['通知权限开启提醒'],
							content: this.i18n['您还没有开启通知权限，无法接受到消息通知，是否前往设置？'],
							success: function(res) {
								if (res.confirm) {
									var Intent = plus.android.importClass('android.content.Intent')
									var Build = plus.android.importClass('android.os.Build')
									//android 8.0引导
									if (Build.VERSION.SDK_INT >= 26) {
										var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS')
										intent.putExtra('android.provider.extra.APP_PACKAGE', pkName)
									} else if (Build.VERSION.SDK_INT >= 21) {
										//android 5.0-7.0
										var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS')
										intent.putExtra('app_package', pkName)
										intent.putExtra('app_uid', uid)
									} else {
										//(<21)其他--跳转到该应用管理的详情页
										intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
										var uri = Uri.fromParts('package', mainActivity.getPackageName(), null)
										intent.setData(uri)
									}
									// 跳转到该应用的系统通知设置页
									main.startActivity(intent)
								}
							},
						})
					}
				} else if (plus.os.name == 'iOS') {
					// 判断是IOS
					var isOn = undefined
					var types = 0
					var app = plus.ios.invoke('UIApplication', 'sharedApplication')
					var settings = plus.ios.invoke(app, 'currentUserNotificationSettings')
					if (settings) {
						types = settings.plusGetAttribute('types')
						plus.ios.deleteObject(settings)
					} else {
						types = plus.ios.invoke(app, 'enabledRemoteNotificationTypes')
					}
					plus.ios.deleteObject(app)
					isOn = 0 != types
					if (isOn == false) {
						uni.showModal({
							title: this.i18n['通知权限开启提醒'],
							content: this.i18n['您还没有开启通知权限，无法接受到消息通知，是否前往设置？'],
							success: function(res) {
								if (res.confirm) {
									var app = plus.ios.invoke('UIApplication', 'sharedApplication')
									var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:')
									plus.ios.invoke(app, 'openURL:', setting)
									plus.ios.deleteObject(setting)
									plus.ios.deleteObject(app)
								}
							},
						})
					}
				}
				// #endif
			},
			// #endif
			
			// 记录订单日志
			recordLogs() {
				this.$api.post(global.apiUrls.postOrderLog, {
					id: global.order_id,
					msg: global.logMsg,
					type: global.is_risk,
				}).then(res => {
					// this.$message.info(res.data.info);
					if (res.data.code == 1) {
						uni.$emit('setLog');
					}
				}).catch(err => {
					console.log(err);
				})
			},
		},
	}
</script>

<style lang="scss">
	@import "uview-ui/index.scss";
	/* #ifndef APP-PLUS-NVUE */
	@import './style/icon.css';
	@import './style/main.css';
	@import './style/animation.css';
	@import './style/iconfont.css';
	@import './style/common.scss';
	@import './style/diyStyle.scss';
	/* #endif */
	
	.wrongQuestion_fd3_1 {
		width: 100%;
		padding: 50rpx 0rpx 50rpx 0rpx;
		margin: 32rpx 0rpx 0rpx 0rpx !important;
	}
	
	.wrongQuestion_fd3_1_c0 {
		width: 400rpx;
		margin: 32rpx 0rpx 0rpx 0rpx !important;
		border-radius: 0rpx 0rpx 0rpx 0rpx;
	}
	
	.wrongQuestion_fd3_1_c1 {
		padding: 30rpx 0rpx 0rpx 0rpx;
		color: #929292;
	}
</style>
